home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
LANG
/
SML40
/
!Sml
/
Sml
/
README
< prev
next >
Wrap
Text File
|
1990-12-05
|
4KB
|
135 lines
This Archive contains the RISC-OS executables for Edinburgh SML
WARNING: SML is not in the public domain. To use this software
legitimately you must first complete the license agreement.
This may be found in the file ORIGREADME.
INTRODUCTION
------------
SML is a functional programming language with very powerful and
flexible date-typing mechanism, abstract data-types, and imperative
features to make ``real-world'' programming possible.
The ability to do incremental compilation, and the powrful
type-checking make it excellent for rapid prototyping.
With the native compilers available for larger machines,
industrial scale applications can be developed with an
efficiency comparable to fancy Smalltalk or LISP systems etc.
Beats the pants off hacking away in low-level languages like
C or Pascal.
The Edinburgh implementation compiles to an efficient abstract
machine which allows it to run well in relatively small machines
(2M is plenty, small programs will run in 1M) at the cost of
some loss of performance. Speed is comparable with fast interpreted
LISPs and rather better than Prolog.
CONTENTS
--------
ml_1 - Source for UNIX manual page for SML
LIBINFO - Doc. of Library functions loaded as standard on top
of the SML core language.
ORIGREADME - Original README with UNIX distribution.
BOOTML - Simple script to build an initial SML saved=state.
config - ML commands used by BOOTML to build the initial saved-state
fam - SML Abstract machine interpreter
ml,tml - Example Obey scripts for running SML. tml uses less memory.
smlcore_bk - Distribution format fam code for SML system saved-state. Loaded
by BOOTML to build a proper local format saved-state.
core_array - Source for optional SML array package.
core_barra - "
compstuff - Directory containing stuff needed if you want to re-compile
SML sometime.
NOTE: If you have obtained this archive from the LFCS info-server you
will find that the last three files are missing. They are contained
(under similar but somewhat longer names) in the edml-CompilerAndLib
archive.
Even if you have copies of these three files it may be worth checking
if more up to date versions are available from the LFCS info-server.
E-mail to info-server@uk.ac.ed.lfcs if on JANET,
info-server@lfcs.ed.ac.uk if on the Internet (etc).
HOW TO BUILD A RUNNABLE SML SYSTEM
----------------------------------
(1) If file types are screwy set them sensibly.
ml_1 - Text
LIBINFO - Text
UNIXREADME - Text
BOOTML - Obey
config - Text
fam - Application
ml,tml - Obey
smlcore_bk - Data
core_array - Text
core_barra - Text
Run BOOTML.
This builds a saved-state smlcore_ex containing the default
SML system.
Move the files fam, ml (and/or tml) and smlcore_ex to wherever you keep
your executables. E.g. $.Bin, $.Library, $.Library.bin or
whatever.
ENJOY!
Edit tml or ml if you want to change the amount of memory SML
claims from the operating system.
The system only supports the core langauge - not the fancy module system -
Alas.
If you want to use arrays you need to build a saved
state with some extra stuff loaded.
Edit ``config'' to load core_array and core_barra before
the exportML that dumps the resulting state to smlcore_ex.
Recompiling SML
---------------
Read the README in the compstuff directory.
Please feed back any bug fixes (etc) either to me or to the
Foundations lab.
BUGS
----
Currently, due to what appear to be bugs the Acorn's signal
interface in ANSI-C, the handling of Floating Point exceptions
like division by zero or overflow is somwhat erratic. Theoretically,
SML ought to raise Qout, Prod (or whatever) exceptions that can
then be handled by user-code if desired. In practice, ANSI-C
seems to blithely ignore the FP exceptions so that SML
ends up returning ``infinity'' or other not-number values
rather than launching exceptions.
The scary part of this is that if you accept this and just tell ANSI-C
to ignore FP exceptions the C library seems to crash certain programs.
This behaviour has not so far been observed for SML but ...
The Motto: for the moment avoid writing SML that raises and traps
FP exceptions.
Please send any queries to
JANET: as@uk.ac.ed.aipna
INTERNET: as@aipna.ed.ac.uk
UUCP: ...!ukc!aipna!as
Andrew Stevens
Deptartment of Artificial Intelligence
Edinburgh University
80 South Bridge
EDINBURGH